<?php

class HopDongController extends Controller
{
    public function view($id)
    {
        $id = rtrim($id, '/');

        $this->assign('hopdong', $this->HopDong->getHopDong($id));

        $canbo = new Canbo();
        $this->assign($canbo->getInfo($id));
    }

    private function initForm($id)
    {
        $canbo = new Canbo();

        $this->assign($canbo->getInfo($id));
        $this->assign('them_form', true);
    }
    public function them($id)
    {
        $id = rtrim($id, '/');
        $this->initForm($id);
    }

    public function sua($params)
    {
        $pattern = '/^(?P<cb_id>\d{5})\/(?P<hd_id>\d+?)\/?$/';
        if (!preg_match($pattern, $params, $match)) {
            throw new Exception("Gọi thực hiện thao tác sửa với đối số không hợp lệ! {$params}");
        } else {
            $canbo = new Canbo();
            $hd = $this->HopDong->getHopDongById($match['hd_id']);

            $this->assign($canbo->getInfo($match['cb_id']));
            $this->assign($hd);
            $this->assign('type', 'edit');
        }
    }

    public function xoa($params)
    {
        $pattern = '/^(?P<cb_id>\d{5})\/(?P<hd_id>\d+?)\/?$/';
        if (!preg_match($pattern, $params, $match)) {
            throw new Exception("Gọi thực hiện thao tác xóa với đối số không hợp lệ!");
        } else {
            $canbo = new Canbo();
            $this->assign($match);
            $this->assign($canbo->getInfo($match['cb_id']));
        }
    }
    public function process()
    {
        if (isset($_POST['submit'])) {
            $type = strtolower($_POST['type']);
            if ($type == 'add') {
                $ngaybd = preg_replace('/(\d{1,2})\/(\d{1,2})\/(\d{4})/', '$3-$2-$1', $_POST['hd_ngaybd']);
                $ngaykt = preg_replace('/(\d{1,2})\/(\d{1,2})\/(\d{4})/', '$3-$2-$1', $_POST['hd_ngaykt']);
                $id = $this->HopDong->them($_POST['cb_id'], $_POST['lhd_id'], $ngaybd, $ngaykt);

                $this->assign(array(
                    'title' => 'Họp đồng',
                    'content' => "Thêm hợp đồng thành công, mã họp đồng <strong>{$id}</strong>"
                ));
            } elseif ($type == 'edit') {
                $ngaybd = preg_replace('/(\d{1,2})\/(\d{1,2})\/(\d{4})/', '$3-$2-$1', $_POST['hd_ngaybd']);
                $ngaykt = preg_replace('/(\d{1,2})\/(\d{1,2})\/(\d{4})/', '$3-$2-$1', $_POST['hd_ngaykt']);
                $this->HopDong->sua($_POST['hd_id'], $_POST['lhd_id'], $ngaybd, $ngaykt);;

                $this->assign(array(
                    'title' => 'Họp đồng',
                    'content' => "Thực hiện sửa họp đồng hoàn tất!"
                ));
            } elseif ($type == 'delete') {
                $c = $this->HopDong->xoa($_POST['cb_id'], $_POST['hd_id']);
                $this->assign(array(
                    'title' => 'Hợp đồng',
                    'content' => "Thực hiện xóa hợp đồng hoàn tất!"          ));
            } else {
                $this->assign(array(
                    'title' => 'Lỗi xử lý',
                    'content' => 'Loại yêu cầu không hợp lệ!'
                ));
            }

            $this->assign('redirect', "hopdong/view/{$_POST['cb_id']}");
        } else {
            $this->assign('title', 'Lỗi cập nhật');
            $this->assign('content', 'Không có yêu cầu cần xử lý!');
            $this->assign('redirect', '/quanly/canbo');
        }
    }

}
